package com.yang.service.addFileToPhone;

import java.io.File;
import java.util.ArrayList;

/**
 * 获取所给的电脑文件夹路径，
 * 去循环读取获取文件夹里的文件路径信息，
 */
public class GetPCDirInFileUrl {

    ArrayList<String> urls = new ArrayList<>();

    /**
     * 获取电脑生的文件夹的全部文件路径
     * @param url 传入的电脑文件夹路径
     * @return 文件夹里的全部文件路径集合
     */
    public ArrayList<String> getFileUrls(String url) {
        forDir(url);//开始迭代
        return urls;
    }

    public void forDir(String dirs) {
        File copyDir = new File(dirs);
        ArrayList<String> sonDir = new ArrayList<>();//传入的电脑文件夹绝对路径下的子文件夹集合
        for (String sonUrl : copyDir.list()) {
            sonUrl = dirs+"/"+sonUrl;//根据传入的文件夹绝对路径+子文件夹或子文件相对路径=电脑内的绝对路径
            File f = new File(sonUrl);
            if (f.isFile()) {//判断拼成的绝对路径sonUrl下是否是文件
                urls.add(f.getPath());//将文件的绝对路径sonUrl添加到返回的集合中
            } else if (f.isDirectory()) {//判断拼成的绝对路径sonUrl下是否是文件夹
                sonDir.add(f.getPath());//将子文件夹的绝对路径sonUrl添加到下一次循环读取的文件夹集合sonDir中
            }
        }
        for (String s : sonDir){//循环读取子文件夹集合sonDir
            forDir(s);
        }
    }
}
